package org.jeecg.modules.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.entity.base.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: db_employee_data
 * @Author: jeecg-boot
 * @Date:   2024-07-08
 * @Version: V1.0
 */
@Data
@TableName("db_employee_data")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="db_employee_data对象", description="db_employee_data")
public class DbEmployeeData extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

	/**员工编号*/
    @ApiModelProperty(value = "员工编号")
    private String id;
	/**员工名称*/
	@Excel(name = "员工名称", width = 15)
    @ApiModelProperty(value = "员工名称")
    private String name;
	/**性别*/
	@Excel(name = "性别",dicCode = "sex", width = 15)
    @ApiModelProperty(value = "性别")
    @Dict(dicCode = "sex")
    private Integer sex;
	/**身份证号*/
	@Excel(name = "身份证号", width = 15)
    @ApiModelProperty(value = "身份证号")
    private String personalId;
	/**入职日期*/
	@Excel(name = "入职日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "入职日期")
    private Date entryDate;
	/**入职部门*/
	@Excel(name = "入职部门", width = 15)
    @ApiModelProperty(value = "入职部门")
    private String department;
	/**岗位*/
	@Excel(name = "岗位", width = 15)
    @ApiModelProperty(value = "岗位")
    private String station;
	/**岗位级别*/
	@Excel(name = "岗位级别", width = 15)
    @ApiModelProperty(value = "岗位级别")
    private String stationLev;
	/**社保状态*/
	@Excel(name = "社保状态",dicCode = "ins_status", width = 15)
    @ApiModelProperty(value = "社保状态")
    @Dict(dicCode = "ins_status")
    private Integer insuranceStatus;
	/**是否离职（0：在职；1：离职；2：停薪留职）*/
	@Excel(name = "是否离职",dicCode = "work_status", width = 15)
    @ApiModelProperty(value = "是否离职（0：在职；1：停薪留职；2：离职）")
    @Dict(dicCode = "work_status")
    private Integer workStatus;
	/**离职日期*/
	@Excel(name = "离职日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "离职日期")
    private Date departDate;
	/**离职交接(0:未交接；1：已交接)*/
	@Excel(name = "离职交接", dicCode = "end_handover", width = 15)
    @ApiModelProperty(value = "离职交接(0:未交接；1：已交接)")
    @Dict(dicCode = "end_handover")
    private Integer endHandover;
	/**离职交接人*/
	@Excel(name = "离职交接人", width = 15)
    @ApiModelProperty(value = "离职交接人")
    private String endHandoverPerson;
	/**社保终止日期*/
	@Excel(name = "社保终止日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "社保终止日期")
    private Date securityDate;
	/**工资终止日期*/
	@Excel(name = "工资终止日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "工资终止日期")
    private Date wagesDate;
	/**部门领导审核*/
	@Excel(name = "部门领导审核", width = 15)
    @ApiModelProperty(value = "部门领导审核")
    private String leader;
	/**离职原因*/
	@Excel(name = "离职原因", width = 15)
    @ApiModelProperty(value = "离职原因")
    private String endReason;
	/**附件*/
	@Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private String fileGroupId;

    @TableField(exist = false)
    @ApiModelProperty(value = "文件ids")
    private List<String> fileIds;
}
